#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""
@Project ：pytest_allure_pytest-html_study 
@File    ：03_ini文件的使用.py
@IDE     ：PyCharm 
@Author  ：XiaoDengYa
@Date    ：2021/6/3/003 14:24 
"""


# pytest配置文件可以改变pytest的运行方式，它是一个固定的文件pytest.ini文件，读取配置信息，按指定的方式去运行
import pytest

"""
非test文件
pytest里面有些文件是非test文件
pytest.ini：pytest的主配置文件，可以改变pytest的默认行为
conftest.py：测试用例的一些fixture配置
_init_.py：识别该文件夹为python的package包
"""
@pytest.mark.weibo
def test_demo():
    print("weibo---1")

@pytest.mark.xinlang
def test_xinlang():
    print("xinlang---1")

@pytest.mark.xfail
def test_baidu():
    a = "a"
    b = "b"
    assert a != b


# xfail_strict
# 作用：设置xfail_strict = True可以让那些标记为@pytest.mark.xfail但实际通过显示XPASS的测试用例被报告为失败
#
# 格式：True 、False（默认），1、0

"""
addopts
作用：addopts参数可以更改默认命令行选项，这个当我们在cmd输入一堆指令去执行用例的时候，就可以用该参数代替了，省去重复性的敲命令工作
比如：想测试完生成报告，失败重跑两次，一共运行两次，通过分布式去测试，如果在cmd中写的话，命令会很长
"""
# 加了addopts之后，我们在cmd中只需要敲pytest就可以生效了！！

"""
log_cli
作用：控制台实时输出日志
格式：log_cli=True 或False（默认），或者log_cli=1 或 0
log_cli=0的运行结果
"""


"""
norecursedirs
作用：pytest 收集测试用例时，会递归遍历所有子目录，包括某些你明知道没必要遍历的目录，遇到这种情况，可以使用 norecursedirs 参数简化 pytest 的搜索工作【还是挺有用的！！！】
默认设置： norecursedirs = .* build dist CVS _darcs {arch} *.egg 
正确写法：多个路径用空格隔开
"""
# norecursedirs = .* build dist CVS _darcs {arch} *.egg venv src resources log report util (查找这些文件下的test用例)



"""
更改测试用例收集规则
pytest默认的测试用例收集规则
文件名以 test_*.py 文件和 *_test.py
以  test_ 开头的函数
以  Test 开头的类，不能包含 __init__ 方法
以  test_ 开头的类里面的方法

python_files =     test_*  *_test  test*
python_classes =   Test*   test*
python_functions = test_*  test*
"""
